package com.flejay.dreamrecruiter.tools;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang3.StringUtils;

import com.flejay.dreamrecruiter.model.AbstractTag;

public final class TagTool {

	private TagTool(){
		super();
	}
	
	/**
	 * clone a list of abstract tag
	 * 
	 * @param tagList
	 * @return
	 */
	public final static List<AbstractTag> clone(final List<AbstractTag> tagList){
		List<AbstractTag> clonedTag = new ArrayList<AbstractTag>();
		for(AbstractTag tag : tagList){
			clonedTag.add((AbstractTag)tag.clone());
		}
		return clonedTag;
	}
	
	/**
	 * Remove the tags with the specified label from the list3
	 * 
	 * @param tagList
	 * @param label
	 */
	public final static void removeTag(List<AbstractTag> tagList, final String label){
		List<AbstractTag> tagsToRemove = new ArrayList<AbstractTag>();
		for(AbstractTag tag : tagList){
			if (StringUtils.equalsIgnoreCase(tag.getLabel(), label)){
				tagsToRemove.add(tag);
			}
		}
		tagList.removeAll(tagsToRemove);
	}
	
	public final static List<AbstractTag> copyList(List<AbstractTag> tags){
		List<AbstractTag> tagsRemaining = new ArrayList<AbstractTag>();
		for(AbstractTag tag : tags){
			tagsRemaining.add((AbstractTag)tag);
		}
		return tagsRemaining;
	}
}
